import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.StateBasedGame;

import stages.City;
import stages.City2;
import character.Nartan;
import framework.Scalable;
import framework.states.*;


public class DerpFighter extends StateBasedGame implements Scalable {

	public DerpFighter(String title) {
		super(title);
	}

	@Override
	public void initStatesList(GameContainer gc) throws SlickException {
		WelcomeScreen ws = new WelcomeScreen();
		addState(ws);

		FighterSelectIa select = new FighterSelectIa();
		FighterSelect selectIa = new FighterSelect();
		Fight fight = new Fight(new Nartan(), new Nartan(), new City2());
		OnlineFight onlineFight = new OnlineFight(new Nartan(), new Nartan(), new City());
		CreateFight create = new CreateFight();
		JoinFight join = new JoinFight();
		InputConfigurator conf = new InputConfigurator();
		OptionMenu optionMenu = new OptionMenu();
		GameOptions gameOptions = new GameOptions();

		Menu menu = new Menu();
		OnlineMenu onlineMenu = new OnlineMenu();
		addState(menu);
		
		menu.addItem("Start game", select);
		menu.addItem("Versus", selectIa);
		menu.addItem("Online fight", onlineMenu);
		menu.addItem("Options", optionMenu);

		onlineMenu.addItem("Join fight", join);
		onlineMenu.addItem("Create fight", create);
		
		optionMenu.addItem("Key bindings", conf);
		optionMenu.addItem("Game settings", gameOptions);
	
		addState(fight);
		addState(select);
		addState(selectIa);
		addState(onlineMenu);
		addState(optionMenu);
		
		addState(onlineFight);
		addState(create);
		addState(join);

		addState(gameOptions);
		addState(conf);
		enterState(ws.getID());
	}

	@Override
	public void setScale(float scale) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public float getScale() {
		return 1;
	}
}
